// server_naive.go
//
// 功能：刻意延迟读取，使 TCP 缓冲内同时存在多条消息，放大粘包现象。
// 做法：每轮读前 Sleep 50ms，再调用 conn.Read。
// 现象：客户端连续发送 "hello"、"world"、"stack"，服务器可能一次读到 10 或 15 字节。
package main

import (
	"io"
	"log"
	"net"
	"time"
)

const naiveAddr = "127.0.0.1:7000"

func main() {
	listener, err := net.Listen("tcp", naiveAddr)
	if err != nil {
		log.Fatalf("listen error: %v", err)
	}
	log.Printf("[NAIVE] 监听 %s，等待客户端连接...", naiveAddr)

	conn, err := listener.Accept()
	if err != nil {
		log.Fatalf("accept error: %v", err)
	}
	defer conn.Close()

	buf := make([]byte, 16)
	for {
		time.Sleep(50 * time.Millisecond) // 故意慢读，放大粘包效果

		n, err := conn.Read(buf)
		if err != nil {
			if err == io.EOF {
				log.Println("[NAIVE] 客户端关闭连接")
				return
			}
			log.Fatalf("[NAIVE] read error: %v", err)
		}
		log.Printf("[NAIVE] 单次 Read=%d 字节，内容=%q", n, buf[:n])
	}
}
